Generalized assignment problem